#pragma once

class XgW32ProcessModules;

#include "XgW32Process.h"
#include "XgW32ProcessModule.h"
#include <windows.h>
#include <map>

class XgW32ProcessModules
{
public:
	typedef std::map<HMODULE, XgW32ProcessModule> XgW32ProcessModulesMap;
	typedef XgW32ProcessModulesMap::iterator Iterator;

public:
	XgW32ProcessModules(DWORD _pid);
	XgW32ProcessModules(const XgW32ProcessModules& modules);

public:
	~XgW32ProcessModules(void);

public:
	bool refresh();
	bool clear();

public:
	XgW32ProcessModules::Iterator begin();
	XgW32ProcessModules::Iterator end();

private:
	DWORD _pid;
	XgW32ProcessModulesMap _map;
};

